package com.leiyuan.learning.service;

import com.leiyuan.learning.model.dto.ElChooseCourseDto;
import com.leiyuan.learning.model.dto.ElCourseTablesDto;
import com.leiyuan.learning.model.dto.MyCourseTableParams;
import com.leiyuan.learning.model.po.ElChooseCourse;
import com.leiyuan.learning.model.po.ElCourseTables;
import com.leiyuan.model.PageResult;

/**
 * @description 我的课程表service
 * @author leiyuan
 * @version 1.0
 */
public interface MyCourseTablesService {

  /**
   * 添加选课
   * @param userId 用户id
   * @param courseId 课程id
   * @return com.leiyuan.learning.model.dto.ElChooseCourseDto
   * @author leiyuan
  */
  public ElChooseCourseDto addChooseCourse(String userId, Long courseId);

  /**
   * 判断学习资格
   * @param userId 用户id
   * @param courseId 课程id
   * @return com.leiyuan.learning.model.dto.ElCourseTablesDto
   * @author leiyuan
  */
  public ElCourseTablesDto getLearningStatus(String userId, Long courseId);

  /**
   * 添加我的课程表
   * @param elChooseCourse 课程表信息
   * @return com.leiyuan.learning.model.po.ElCourseTables
   * @author leiyuan
  */
  public ElCourseTables addCourseTables(ElChooseCourse elChooseCourse);

  /**
   * 保存选课成功状态
   * @param chooseCourseId
   * @return
   */
  public boolean saveChooseCourseSuccess(String chooseCourseId);

  /**
   * 我的课程表
   * @param params
   * @return com.leiyuan.model.PageResult<com.leiyuan.learning.model.po.ElCourseTables>
   * @author leiyuan
  */
  public PageResult<ElCourseTables> mycoursetables(MyCourseTableParams params);

}
